﻿using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Security.Claims;
using System.Security.Principal;
using TomNet.Core;
using TomNet.Extensions;
using TomNet.Security.Claims;

namespace TomNet.App.Web.Common
{
	public class BaseController: Controller
	{
		protected ILogger Logger => HttpContext.RequestServices.GetLogger(GetType());

		#region bool IsAuthenticated 是否登录验证成功。

		/// <summary>
		/// 是否登录验证成功。
		/// </summary>
		public bool IsAuthenticated
		{
			get
			{
				return HttpContext.User.Identity.IsAuthenticated;
			}
		}

		#endregion

		#region int LoginUserId 登录用户Id。

		/// <summary>
		/// 登录用户Id。
		/// </summary>
		public int LoginUserId
		{
			get
			{
				int result = 0;

				string userId = ((IPrincipal)HttpContext.User).Identity.GetClaimValueFirstOrDefault(ClaimTypes.NameIdentifier);
				int.TryParse(userId, out result);

				return result;
			}
		}

		#endregion

		#region int LoginRoleId 登录用户角色Id。

		/// <summary>
		/// 登录用户角色Id。
		/// </summary>
		public int LoginRoleId
		{
			get
			{
				int result = 0;

				string roleId = ((IPrincipal)HttpContext.User).Identity.GetClaimValueFirstOrDefault("RoleId");
				int.TryParse(roleId, out result);

				return 0;
			}
		}

		#endregion
	}
}
